#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/** 2022-11-21  23:14   by  CYL
*   @Aim:用于解决使用fscanf()时返回-1(即读取失败)的问题。
*   @Solution:使用fprintf()先创建一个文件，看IDE将文件创建到哪了。
*   @Reason:不同的IDE在debug时，fscanf读取的相对路径也不同。在QT和Clion中，被读取的文件需要被放置在debug的文件夹中。
*   @Attention:在QT中使用UTF-8时，需要先右击鼠标，选择最下方的"UTF-8 BOM on SAVE"，否则会出现中文乱码的情况。
*/
typedef struct s_LineContent {
    unsigned int id;
    char name[5];
    char schoolName[10];
    char className[5];
} s_LineCtnt;

int main()
{
    FILE *rdFile=fopen("./namae.txt","w+");
    unsigned int rdFileState=99;
    s_LineCtnt txtLine_01;
    s_LineCtnt txtLine_02;

    printf("rdFile = %p\n",rdFile);
    fprintf(rdFile,"%d %s %s %s\n",0,"老铁","铁憨一中","二班");
    fprintf(rdFile,"%d %s %s %s",1,"阿爆","铁憨一中","三班");
    rewind(rdFile);
    rdFileState=fscanf(rdFile,"%d %s %s %s",&txtLine_01.id,txtLine_01.name,txtLine_01.schoolName,txtLine_01.className);
    rdFileState=fscanf(rdFile,"%d %s %s %s",&txtLine_02.id,txtLine_02.name,txtLine_02.schoolName,txtLine_02.className);
    fclose(rdFile);

    printf("rdFileState = %d\n",rdFileState);
    printf("txtLine_01.name = %s,strlen %d\n",txtLine_01.name,strlen(txtLine_01.name));
    printf("txtLine_01.name = %s,strlen %d\n",txtLine_02.name,strlen(txtLine_02.name));
    return 0;
}
